package com.room.search.service.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
import javax.validation.constraints.*;

/**
 * A DTO for the {@link com.room.search.domain.RoomTransactionProperty} entity.
 */
@ApiModel(description = "房屋交易属性")
public class RoomTransactionPropertyDTO implements Serializable {

    private Long id;

    /**
     * 挂牌时间
     */
    @ApiModelProperty(value = "挂牌时间")
    private LocalDate listingTime;

    /**
     * 上次交易时间
     */
    @ApiModelProperty(value = "上次交易时间")
    private LocalDate lastTradeTime;

    /**
     * 房屋年限
     */
    @Size(max = 16)
    @ApiModelProperty(value = "房屋年限")
    private String roomAgeLimit;

    /**
     * 抵押信息
     */
    @Size(max = 16)
    @ApiModelProperty(value = "抵押信息")
    private String roomMortgage;

    /**
     * 交易权属
     */
    @Size(max = 16)
    @ApiModelProperty(value = "交易权属")
    private String roomTransactionOwnership;

    /**
     * 房屋用途
     */
    @Size(max = 8)
    @ApiModelProperty(value = "房屋用途")
    private String roomUser;

    /**
     * 产权所属
     */
    @Size(max = 16)
    @ApiModelProperty(value = "产权所属")
    private String roomPropertyRights;

    /**
     * 房本备件
     */
    @Size(max = 16)
    @ApiModelProperty(value = "房本备件")
    private String roomSpareParts;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public LocalDate getListingTime() {
        return listingTime;
    }

    public void setListingTime(LocalDate listingTime) {
        this.listingTime = listingTime;
    }

    public LocalDate getLastTradeTime() {
        return lastTradeTime;
    }

    public void setLastTradeTime(LocalDate lastTradeTime) {
        this.lastTradeTime = lastTradeTime;
    }

    public String getRoomAgeLimit() {
        return roomAgeLimit;
    }

    public void setRoomAgeLimit(String roomAgeLimit) {
        this.roomAgeLimit = roomAgeLimit;
    }

    public String getRoomMortgage() {
        return roomMortgage;
    }

    public void setRoomMortgage(String roomMortgage) {
        this.roomMortgage = roomMortgage;
    }

    public String getRoomTransactionOwnership() {
        return roomTransactionOwnership;
    }

    public void setRoomTransactionOwnership(String roomTransactionOwnership) {
        this.roomTransactionOwnership = roomTransactionOwnership;
    }

    public String getRoomUser() {
        return roomUser;
    }

    public void setRoomUser(String roomUser) {
        this.roomUser = roomUser;
    }

    public String getRoomPropertyRights() {
        return roomPropertyRights;
    }

    public void setRoomPropertyRights(String roomPropertyRights) {
        this.roomPropertyRights = roomPropertyRights;
    }

    public String getRoomSpareParts() {
        return roomSpareParts;
    }

    public void setRoomSpareParts(String roomSpareParts) {
        this.roomSpareParts = roomSpareParts;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof RoomTransactionPropertyDTO)) {
            return false;
        }

        RoomTransactionPropertyDTO roomTransactionPropertyDTO = (RoomTransactionPropertyDTO) o;
        if (this.id == null) {
            return false;
        }
        return Objects.equals(this.id, roomTransactionPropertyDTO.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.id);
    }

    // prettier-ignore
    @Override
    public String toString() {
        return "RoomTransactionPropertyDTO{" +
            "id=" + getId() +
            ", listingTime='" + getListingTime() + "'" +
            ", lastTradeTime='" + getLastTradeTime() + "'" +
            ", roomAgeLimit='" + getRoomAgeLimit() + "'" +
            ", roomMortgage='" + getRoomMortgage() + "'" +
            ", roomTransactionOwnership='" + getRoomTransactionOwnership() + "'" +
            ", roomUser='" + getRoomUser() + "'" +
            ", roomPropertyRights='" + getRoomPropertyRights() + "'" +
            ", roomSpareParts='" + getRoomSpareParts() + "'" +
            "}";
    }
}
